Various types of storage devices are being used as cache memory and storage in information processing systems in recent years. Memory such as resistive RAM (ReRAM), phase-change RAM (PCRAM), and magnetoresistive RAM (MRAM) are being developed as next generation storage devices.
Among these types of memory, MRAM using a magnetic tunnel junction (MTJ) element is gaining attention for several reasons such as the fact that it is compact, fast, and the number of rewrites is close to infinite. With this MRAM, the resistance value is variable, so data can be rewritten by changing the resistance value. An inducted magnetic field writing method or a spin injection method is used to rewrite the MRAM. More specifically, in applications requiring miniaturization, the spin injection method is suitable because an increase in current can be suppressed. In this spin injection method, data is rewritten by supplying a write current that is larger than a certain reversal threshold, perpendicular to the surface of the MTJ element. The value of the data to be written is determined by the direction of the write current.
Also, when reading data, a read circuit supplies a read current that is smaller than a reversal threshold to a memory cell. Then, the read circuit compares a cell voltage of a memory cell to which the read current was supplied, and a predetermined reference voltage, and outputs the comparison result as a read data value. Non-volatile memory that generates this reference voltage in a plurality of reference cells having the same configuration as the memory cell has been proposed (refer to Patent Literature 1, for example). With this non-volatile memory, the combined resistance of the plurality of reference cells is initialized so as to become the average of the resistance values of each of the memory cells in a high resistance state and a low resistance state.